<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Java Data Objects</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Java_Data_Objects"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Java_Data_Objects rootpage-Java_Data_Objects skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Java Data Objects</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Die <b>Java Data Objects</b> (<b>JDO</b>) sind eine offizielle <a href="Sun_Microsystems" title="Sun Microsystems">Sun</a>-Spezifikation für ein herstellerunabhängiges <a href="Framework" title="Framework">Framework</a> zur <a href="Persistenz_(Informatik)" title="Persistenz (Informatik)">persistenten</a> Speicherung von <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>-<a href="Objektorientierte_Programmierung" title="Objektorientierte Programmierung">Objekten</a>.
</p><p>In der JDO-Spezifikation wird eine einheitliche Schnittstelle für den Zugriff auf persistente Daten definiert. Die Art und Weise der physikalischen Speicherung ist nicht festgelegt. So können die Objektinformationen in Datenbanken (relational oder <a href="Objektorientiertes_Datenbankmodell" class="mw-redirect" title="Objektorientiertes Datenbankmodell">objektorientiert</a>), Dateien oder weiteren Speichern abgelegt werden.
</p><p>Mit Hilfe von JDO kann der Programmierer Datenobjekte ohne Kenntnis der Speichermechanismen bearbeiten. Dadurch müssen sich Entwickler nicht mehr mit den Interna von Datenbanken auseinandersetzen, sie können sich auf die reine Applikationslogik konzentrieren.
</p>
<div class="mw-heading mw-heading2"><h2 id="Entwicklung">Entwicklung</h2></div>
<p>JDO wurde von der <a href="Object_Database_Management_Group" title="Object Database Management Group">Object Database Management Group</a> (ODMG) beeinflusst und 1999 als <a href="Java_Specification_Request" title="Java Specification Request">JSR</a>-12 ins Leben gerufen. Die erste Version von JDO wurde im Mai 2001 von bekannten Unternehmen wie Sun, <a href="IBM" title="IBM">IBM</a> und <a href="Apple" title="Apple">Apple</a> verabschiedet. Für JDO 1.0 wurde von Sun sowohl die <a href="Programmierschnittstelle" title="Programmierschnittstelle">API</a> (Spezifikation), als auch <i>Technology Compatibility Kit</i> (TCK, Kompatibilitätstests) und <i>Reference Implementation</i> (RI, Referenzimplementierung) entwickelt und bereitgestellt. JDO 1 wurde später komplett an die <a href="Apache_Software_Foundation" title="Apache Software Foundation">Apache Software Foundation</a> übergeben, die es im Rahmen des <a href="Apache_DB_Project" title="Apache DB Project">Apache DB Project</a> betreut.
</p><p>Ab der Version 2 vom 1. Mai 2006 wird JDO, wie es aus <a href="Java_Specification_Request" title="Java Specification Request">JSR</a>-243 hervorgeht, von Apache vorangebracht. Bei der Wahl der Referenzimplementierung für JDO 2 wurde aus Zeitgründen das Apache-eigene OJB-Projekt übergangen und stattdessen <a href="DataNucleus" title="DataNucleus">JPOX</a> (inzwischen durch <a href="DataNucleus" title="DataNucleus">DataNucleus</a> abgelöst) als RI bestimmt.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Die Maintenance Release JDO 2.1 vom 2. August 2007 brachte Unterstützung für <a href="Java-Technologie#Version_5.0" title="Java-Technologie">Java 5</a> <a href="Annotation_(Java)" title="Annotation (Java)">Annotations</a>, Generics und Aufzählungstypen (<code>enum</code>). Die Release JDO 2.2 vom 10. Oktober 2008 war lediglich eine Bug Fix Release.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Enterprise_JavaBeans" class="mw-redirect" title="Enterprise JavaBeans">EJB 3.0</a> respektive die <a href="Jakarta_Persistence_API" title="Jakarta Persistence API">Jakarta Persistence API</a> (JPA) wurde maßgeblich von leichtgewichtigen Ansätzen wie JDO oder auch <a href="Hibernate_(Framework)" title="Hibernate (Framework)">Hibernate</a> beeinflusst.
</p>
<div class="mw-heading mw-heading2"><h2 id="Bewertung">Bewertung</h2></div>
<p>Suns Schritt, JDO abzugeben, ist nachvollziehbar und konsequent, da es problematisch sein kann, zwei verschiedene Persistenzansätze parallel und gleichrangig voranzutreiben. Es existieren zwar zahlreiche JDO-Unterstützungen und -Implementierungen (freie und kommerzielle), auch ist gerade JDO 2 sehr leistungsstark, dennoch lässt sich erkennen, dass durch eine strategische Abkehr Suns die anderen standardisierten Lösungen gestärkt werden. So bietet EJB 3 als Implementierung der Jakarta Persistence API mittlerweile vergleichbare Möglichkeiten wie andere leichtgewichtige Lösungen. So zeigt eine Gegenüberstellung von JDO und EJB 3, dass beide Lösungen auch mit der <a href="Java_Platform%2C_Standard_Edition" title="Java Platform, Standard Edition">Standard Edition</a> arbeiten können. Ein Vergleich von JDO und Hibernate zeigt, dass auch hier beide Lösungen mit <a href="Plain_Old_Java_Object" title="Plain Old Java Object">POJOs</a> auskommen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://db.apache.org/jdo/">Apache-JDO-Projekt</a></li>
<li><a rel="nofollow" class="external text" href="http://www.oracle.com/technetwork/java/index-jsp-135919.html">JDO</a> bei <a href="Oracle" title="Oracle">Oracle</a> (Sun)</li>
<li><a rel="nofollow" class="external text" href="https://db.apache.org/jdo/specifications.html">JDO Spezifikationen</a></li>
<li><a rel="nofollow" class="external text" href="http://jcp.org/en/jsr/detail?id=243">JSR 243: JavaTM Data Objects 2.0 – <i>An Extension to the JDO specification</i></a></li>
<li><a rel="nofollow" class="external text" href="http://jcp.org/en/jsr/detail?id=12">JSR 12: <i>JavaTM Data Objects (JDO) Specification</i></a></li>
<li><a rel="nofollow" class="external text" href="http://www.datanucleus.org/">DataNucleus</a> – eine Open-Source-Implementierung (Referenzimplementierung)</li>
<li><a rel="nofollow" class="external text" href="https://wiki.apache.org/jdo/CurrentDevelopment">Wiki-Seite mit dem aktuellen Entwicklungsstand der JDO-Spezifikation</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://wiki.apache.org/jdo/#head-dcdf1102129d3fc6d24339b806d42cb501001c52">Wiki-Seite</a> mit dem Hinweis auf JPOX als JDO-Referenzimplementierung.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://db.apache.org/jdo/index.html">JDO News</a>.</span>
</li>
</ol>
<div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten">
<div style="display: table-cell; vertical-align: middle; width: 100%;">
<div>
Normdaten (Sachbegriff): <a href="Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4737673-9">4737673-9</a></span> </div>
</div></div></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2022-01-22" href="https://de.wikipedia.org/wiki/?title=Java_Data_Objects&oldid=219438507">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>